package br.com.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.geral.Funcoes;
import br.com.modelo.UsuarioDAO;
import br.com.vo.Usuario;

public class LoginController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public LoginController() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String logout = request.getParameter("logout");
		if (logout.equals("true")){
			request.getSession(true).setAttribute("logado", "");
			request.getSession(true).setAttribute("perfil", -1);
			request.getSession(true).setAttribute("nome", "");
			response.sendRedirect("login.jsp");
		}
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//Registra as configura��es do sistema
		String host = Funcoes.getParametro("host");
		String root = Funcoes.getParametro("root");
		request.getSession(true).setAttribute("caminhoAplicacao", "http://"+ host +"/"+ root +"/");
		//Pega os par�metros passados pelo jsp
		String login = request.getParameter("login");
		String senha = request.getParameter("passw");
		//Seta uma vari�vel qualquer para imprimir conte�do na tela
		ServletOutputStream out = response.getOutputStream();
		//Cria uma inst�ncia da classe de acesso ao banco de dados (DAO)
		UsuarioDAO banco = new UsuarioDAO();
		//Cria e seta uma inst�ncia do espelho do banco (VO)
		Usuario usuario = new Usuario();
		usuario.setLogin(login);
		usuario.setSenha(senha);
		Usuario resposta = banco.efetuarLogin(usuario);
		//Verifica se o login e a senha est�o corretos
		if (resposta != null){
			//Registra uma sess�o com o valor true para o usu�rio
			request.getSession(true).setAttribute("logado", "v");
			request.getSession(true).setAttribute("perfil", resposta.getPerfil().getCodigo());
			request.getSession(true).setAttribute("nome", resposta.getNome());
			response.sendRedirect("index.jsp");
		}else{
			//Registra uma sess�o com o valor false (inv�lido) para o usu�rio
			request.getSession(true).setAttribute("logado", "f");
			response.sendRedirect("login.jsp");
		}
	}

}
